package com.hz.monitoring.module.hardware.service.mcu_sys_type;

import com.hz.monitoring.framework.common.pojo.PageResult;
import com.hz.monitoring.module.hardware.controller.admin.mcu_sys_type.vo.*;
import com.hz.monitoring.module.hardware.dal.dataobject.mcu_sys_type.McuSysTypeDO;

import javax.validation.Valid;
import java.util.List;

/**
 * MCU系统分类 Service 接口
 *
 * @author lin
 */
public interface McuSysTypeService {

    /**
     * 创建MCU系统分类
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createMcuSysType(@Valid McuSysTypeCreateReqVO createReqVO);

    /**
     * 更新MCU系统分类
     *
     * @param updateReqVO 更新信息
     */
    void updateMcuSysType(@Valid McuSysTypeUpdateReqVO updateReqVO);

    /**
     * 删除MCU系统分类
     *
     * @param id 编号
     */
    void deleteMcuSysType(Long id);

    /**
     * 获得MCU系统分类
     *
     * @param id 编号
     * @return MCU系统分类
     */
    McuSysTypeDO getMcuSysType(Long id);

    /**
     * 获得MCU系统分类列表
     *
     * @param listVO
     * @return MCU系统分类列表
     */
    List<McuSysTypeDO> getMcuSysTypeList(McuSysTypeListReqVO listVO);

    /**
     * 获得MCU系统分类分页
     *
     * @param pageReqVO 分页查询
     * @return MCU系统分类分页
     */
    PageResult<McuSysTypeDO> getMcuSysTypePage(McuSysTypePageReqVO pageReqVO);

    /**
     * 获得MCU系统分类列表, 用于 Excel 导出
     *
     * @param exportReqVO 查询条件
     * @return MCU系统分类列表
     */
    List<McuSysTypeDO> getMcuSysTypeList(McuSysTypeExportReqVO exportReqVO);

}
